package com.whminwei.edu.api.dc.client;

import com.whminwei.common.exception.ServiceException;
import com.whminwei.common.feign.decoder.FullHttpRspnConfig;
import com.whminwei.common.http.rspn.FullHttpResponse;
import com.whminwei.edu.api.dc.dto.feq.CommonFeq;
import com.whminwei.edu.api.dc.dto.fspn.student.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * @author wangy
 * @since 2024/8/7
 */
@FeignClient(name = "xzzg-pt-student-service", contextId = "datacenter-student", configuration = FullHttpRspnConfig.class)
public interface DcStudentClient {
    /**
     * 获取学生列表
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.student.DcStudentFspn>
     * @author wangy
     * @since 10:09 2024/8/7
     **/
    @PostMapping("/datacenter/getStudentBaseList")
    FullHttpResponse<DcStudentFspn> getStudentBaseList(@RequestBody CommonFeq feq) throws ServiceException;

    /**
     * 获取学生职业资格证书信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.student.DcStudentCertificateFspn>
     * @author zhangjq
     * @since 2024-08-14
     */
    @PostMapping("/datacenter/getStudentCertificateInfo")
    FullHttpResponse<DcStudentCertificateFspn> getStudentCertificateInfo(@RequestBody CommonFeq feq);

    /**
     * 获取学生奖助信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.student.DcScholarshipFspn>
     * @author zhangjq
     * @since 2024-10-19
     */
    @PostMapping("/datacenter/getScholarshipList")
    FullHttpResponse<DcScholarshipFspn> getScholarshipList(@RequestBody CommonFeq feq);

    /**
     * 获取学生获奖信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.student.DcAwardProjectFspn>
     * @author zhangjq
     * @since 2024-10-21
     */
    @PostMapping("/datacenter/getAwardProjectList")
    FullHttpResponse<DcAwardProjectFspn> getAwardProjectList(@RequestBody CommonFeq feq);

    /**
     * 获取岗位实习项目信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.student.DcJobInternshipFspn>
     * @author zhangjq
     * @since 2024-10-22
     */
    @PostMapping("/datacenter/getJobInternshipList")
    FullHttpResponse<DcJobInternshipFspn> getJobInternshipList(@RequestBody CommonFeq feq);

    /**
     * 获取认知实习项目信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.student.DcCognitivePracticeFspn>
     * @author zhangjq
     * @since 2024-10-22
     */
    @PostMapping("/datacenter/getCognitivePracticeList")
    FullHttpResponse<DcCognitivePracticeFspn> getCognitivePracticeList(@RequestBody CommonFeq feq);

    /**
     * 获取学生实习情况信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.student.DcStudentInternFspn>
     * @author zhangjq
     * @since 2024-10-22
     */
    @PostMapping("/datacenter/getStudentInternInfo")
    FullHttpResponse<DcStudentInternFspn> getStudentInternInfo(@RequestBody CommonFeq feq);

    /**
     * 获取学生毕业信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.student.DcGraduateFspn>
     * @author zhangjq
     * @since 2024-10-24
     */
    @PostMapping("/datacenter/getGraduationInfo")
    FullHttpResponse<DcGraduateFspn> getGraduationInfo(@RequestBody CommonFeq feq);
}
